package com.yx.changdao.web.controller;

import com.yx.changdao.common.entity.ContactGroupBuild;
import com.yx.changdao.service.ContactGroupBuildService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yx.changdao.common.annotation.AutoLog;
import com.yx.changdao.common.annotation.ShiroDesc;
import com.yx.changdao.common.data.Result;
import com.yx.changdao.common.exception.AlertException;
import com.yx.changdao.common.utils.SysConst;
import com.yx.changdao.common.utils.SysUtils;
import com.yx.changdao.service.SysUserService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


/**
 * @Description: <br/>
 * 建筑物联户组关联
 * <p>
    * <br/>
    * @Auther: flexible
    * @create 2020/05/28 14:27
    */
    @RestController
    @RequestMapping("contact/group/build")
    public class ContactGroupBuildController {

    /**
    * 建筑物联户组关联服务
    */
    @Autowired
    private ContactGroupBuildService contactGroupBuildService;

    /**
    * 列表
    *
    * @return Result
    */
    @AutoLog
    @GetMapping("/list")
    @RequiresPermissions("contact:group:build:list")
    @ShiroDesc("建筑物联户组关联:列表")
    public Result list() throws AlertException {
    return Result.ok().data(contactGroupBuildService.list(SysUtils.autoCnd(ContactGroupBuild.class)));
    }


    /**
    * 添加建筑物联户组关联
    *
    * @param
    * @return Result
    */
    @AutoLog
    @PostMapping
    @RequiresPermissions("contact:group:build:add")
    @ShiroDesc("建筑物联户组关联:添加")
    public Result add(ContactGroupBuild contactGroupBuild) throws AlertException {
    boolean b = contactGroupBuildService.save(contactGroupBuild);

    if (!b) {
    throw new AlertException("建筑物联户组关联添加失败");
    }

    return Result.ok("建筑物联户组关联添加成功");
    }


    /**
    * 获得指定id 建筑物联户组关联。
    *
    * @param
    * @return Result
    */
    @AutoLog
    @GetMapping("/{id}")
    @RequiresPermissions("contact:group:build:look")
    @ShiroDesc("建筑物联户组关联:查看")
    public Result get(@PathVariable("id") String id) throws AlertException {
ContactGroupBuild contactGroupBuild = contactGroupBuildService.getById(id);

    if (contactGroupBuild == null) {
    throw new AlertException("未找到相关建筑物联户组关联信息");
    }

    return Result.ok().data(contactGroupBuild);
    }


    /**
    * 更新建筑物联户组关联
    *
    * @param
    * @return Result
    */
    @AutoLog
    @PutMapping
    @RequiresPermissions("contact:group:build:save")
    @ShiroDesc("建筑物联户组关联:保存")
    public Result update(ContactGroupBuild contactGroupBuild) throws AlertException {
    boolean b = contactGroupBuildService.updateById(contactGroupBuild);
    if (!b) {
    throw new AlertException("建筑物联户组关联更新失败");
    }

    return Result.ok("建筑物联户组关联更新成功");
    }


    /**
    * 删除建筑物联户组关联
    *
    * @param
    * @return Result
    */
    @AutoLog
    @DeleteMapping("/{id}")
    @RequiresPermissions("contact:group:build:del")
    @ShiroDesc("建筑物联户组关联:删除")
    public Result delete(@PathVariable("id") String id) throws AlertException {
    boolean b = contactGroupBuildService.removeById(id);

    if (!b) {
    throw new AlertException("建筑物联户组关联删除失败");
    }

    return Result.ok("删除建筑物联户组关联成功");
    }

    }
